﻿// #include <benchmark/benchmark.h>

// #include <Dense>
// #include <numeric>

// namespace
// {

// static constexpr int N = 1e3;
// static constexpr int M = 1e3;

// void bench_eigen(benchmark::State &state)
// {
//     Eigen::MatrixXd A(N, N);
//     A.setRandom();
//     Eigen::MatrixXd B(N, 1);

//     for (auto _ : state)
//     {
//         for (int i = 0; i < M; ++i)
//             auto C = A * B;
//     }
// }
// BENCHMARK(bench_eigen);

// void bench_loop(benchmark::State &state)
// {
//     std::vector<double> b(N);
//     std::iota(b.begin(), b.end(), 0);

//     for (auto _ : state)
//     {
//         for (int i = 0; i < M; ++i)
//         {
//             for (int i = 0; i < N; ++i)
//             {
//                 for (int j = 0; j < N; ++j)
//                 {
//                     double c = i * j * b[j];
//                 }
//             }
//         }
//     }
// }
// BENCHMARK(bench_loop);

// } // namespace
